/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dahg.project.istu.controller.bean.commons.publicos;

import com.dahg.project.istu.controller.bean.AbstractBasic;
import com.dahg.project.istu.controller.exceptions.IstuValidationException;
import com.dahg.project.istu.controller.model.Usuario;
import com.dahg.project.istu.controller.services.IAuthenticateService;
import com.dahg.project.istu.controller.services.publicos.IUsuarioMantenimientoService;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author dahg
 */
@Stateless
public class AuthenticateService extends AbstractBasic implements IAuthenticateService {

    @EJB
    private IUsuarioMantenimientoService usuarioService;
    
    @Override
    public Usuario auth(String login, String pass) throws IstuValidationException {
        getEntityManager().clear();
        Usuario usuario = usuarioService.checkIfExist(login);
        String passEncrypt="";
        
        try {
            passEncrypt = getEncrypt().hash(pass);
        } catch (Exception ex) {
            throw new IstuValidationException(ex);
        }
        
        if(!usuario.getActivo()) throw new IstuValidationException("El usuario no se encuentra activo");
        
        if(!usuario.getPassword().equals(passEncrypt)) throw new IstuValidationException("Password no valido");
        
        usuario.setUltimoAcceso(new java.util.Date()); 
        usuarioService.merge(usuario);
        return usuario;
        
    }
    
}
